//
//  ZXY_DownloadAction.h
//  DownLoadTest
//
//  Created by 宇周 on 15/8/24.
//  Copyright (c) 2015年 宇周. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ZXY_DownItem.h"
/**
 *  下载 使用session下载
 */

@protocol ZXY_DownloadActionDelegate <NSObject>

/**
 *  下载完成后回调
 *
 *  @param item 传回下载item
 */
- (void)downLoadSuccess:(ZXY_DownItem *)item;

/**
 *  下载过程中返回进度条
 *
 *  @param downSize   当前已下载的长度
 *  @param expectSize 文件总长度
 *  @param item       返回当前对应的item
 */
- (void)downLoadLength:(int64_t)downSize andExpectLength:(int64_t)expectSize aboutItem:(ZXY_DownItem *)item;

/**
 *  下载失败后的回调
 *
 *  @param item 当前的item
 */
- (void)downLoadFail:(ZXY_DownItem *)item;

/**
 *  下载取消回调
 *
 *  @param item 返回当前的item
 */
- (void)downLoadCancelItem:(ZXY_DownItem *)item;



//取消所有下载回调
- (void)downLoadCancelSession;
@end



@interface ZXY_DownloadAction : NSObject  
+ (ZXY_DownloadAction*)sharedInstance;

@property(nonatomic , strong)NSURLSession *downLoadSession;

//下载过程中的代理方法
@property(nonatomic ,assign)id<ZXY_DownloadActionDelegate>delegate;


//增加下载任务
- (void)addLoadItem:(ZXY_DownItem *)item;

/**
 *  暂停下载item
 *
 *  @param item 暂停下载将会移除
 */
- (void)pauseItem:(ZXY_DownItem *)item;

/**
 *  取消下载，彻底取消
 *
 *  @param item 下载item
 */
- (void)cancelItem:(ZXY_DownItem *)item;


//取消所有下载任务
- (void)cancelDown;
@end
